A Compiler Framework for Restructuring Data Declarations to Enhance Cache and Tlb Eeectiveness
نویسندگان
چکیده
It has been observed that memory access performance can be improved by restructuring data declarations , using simple transformations such as array dimension padding and inter-array padding (array alignment) to reduce the number of misses in the cache and TLB (translation lookaside buuer). These transformations can be applied to both static and dynamic array variables. In this paper, we provide a padding algorithm for selecting appropriate padding amounts, which takes into account various cache and TLB eeects collectively within a single framework. In addition to reducing the number of misses, we identify the importance of reducing the impact of cache miss jamming by spreading cache misses more uniformly across loop iterations. We translate undesirable cache and TLB behaviors into a set of constraints on padding amounts and propose a heuristic algorithm of polynomial time complexity to nd the padding amounts to satisfy these constraints. The goal of the padding algorithm is to select padding amounts so that there are no set connicts and no ooset connicts in the cache and TLB, for a given loop. In practice, this algorithm can eeciently nd small padding amounts to satisfy these constraints.
منابع مشابه
A Compiler Framework for Restructuring Data Declarations to Enhance Cache and TLB E ectiveness
It has been observed that memory access performance can be improved by restructuring data declarations, using simple transformations such as array dimension padding and inter-array padding (array alignment) to reduce the number of misses in the cache and TLB (translation lookaside bu er). These transformations can be applied to both static and dynamic array variables. In this paper, we provide ...
متن کاملA Compiler Framework for Restructuring Data Declarations
It has been observed that memory access performance can be improved by restructuring data declarations , using simple transformations such as array dimension padding and inter-array padding (array alignment) to reduce the number of misses in the cache and TLB (translation lookaside buuer). These transformations can be applied to both static and dynamic array variables. In this paper, we provide...
متن کاملArray Restructuring for Cache Locality
Array Restructuring for Cache Locality by Shun-Tak Albert Leung Chairperson of Supervisory Committee: Professor John Zahorjan Department of Computer Science and Engineering Caches are used in almost every modern processor design to reduce the long memory access latency, which is increasingly a bottleneck to program performance. For caches to be effective, programs must exhibit good data localit...
متن کاملImperfectly - Nested Loops Yonghong
This paper presents an integrated compiler framework for tiling a class of nontrivial imperfectly-nested loops such that cache locality is improved. We develop a new memory cost model to analyze data reuse in terms of both the cache and the TLB, based on which we compute the tile size with or without array duplication. We determine whether to duplicate arrays for tiling by comparing the respect...
متن کاملComparing Data Forwarding and Prefetchingfor Communication - Induced Misses in Shared - Memory MPs 1
As the diierence in speed between processor and memory system continues to increase, it is becoming crucial to develop and reene techniques that enhance the eeectiveness of cache hierarchies. Two such techniques are data prefetching and data forwarding. With prefetching, a processor hides the la-tency of cache misses by requesting the data before it actually needs it. With forwarding, a produce...
متن کامل